const fs = require('fs');

const queryString = require('querystring');

module.exports = {
    
    readFile:function (file,res,req) {
        //传入的时候，文件具体读取，默认的是文本
      //  如果是二进制流，这里加参数utf-8
      fs.readFile(file,'utf-8',function (error,data) {
          if(error)
              throw error;
          //html head是text/html
          res.writeHead(200,{'Content-Type':'text/html;charset=utf-8'});
          res.write(data);
          res.end();
      }) 
    },

    postReadFile:function (file,res,req,post) {
        var urlObject = queryString.parse(post);
        //原数组
        var array = ['email','password'];
        var reg;
        fs.readFile(file,'utf-8',function (error,data) {
            if(error) throw error;
            res.writeHead(200,{'Content-Type':'text/html;charset=utf-8'});
            for(var i=0,len = array.length;i<len;i++){
                //字符串替换操作
                //new RegExp(pattern [, flags])
                //pattern
//                 正则表达式的文本。
// flags
//                 如果指定，标志可以具有以下值的任意组合：
//
// g
//                 全局匹配;找到所有匹配，而不是在第一个匹配后停止
//                 i
//                 忽略大小写
//                 m
//                 多行; 将开始和结束字符（^和$）视为在多行上工作（也就是，分别匹配每一行的开始和结束（由 \n 或 \r 分割），而不只是只匹配整个输入字符串的最开始和最末尾处。
// u
//                 Unicode; 将模式视为Unicode序列点的序列
//                 y
//                 粘性匹配; 仅匹配目标字符串中此正则表达式的lastIndex属性指示的索引(并且不尝试从任何后续的索引匹配)。
// s
//                 dotAll模式，匹配任何字符（包括终止符 '\n'）。
                reg = new RegExp('{'+array[i]+'}','gi');
                data = data.replace(reg,urlObject[array[i]]);
            }

            //手工处理实现信息显示和隐藏的功能
            //后期可以使用其他简便方法实现功能
            //这里纯使用原生js实现这个效果
            if(urlObject.email && urlObject.password){
                data = data.replace(new RegExp('{infoClass}','gi'),'');
                data = data.replace(new RegExp('{formClass}','gi'),'hide');
            }else {
                data = data.replace(new RegExp('{infoClass}','gi'),'hide');
                data = data.replace(new RegExp('{formClass}','gi'),'');
            }
            res.write(data);
            res.end()
        })
    },

    readImg:function (file,res) {
        //传入的时候，文件具体读取，默认的是文本
        //  如果是二进制流，这里加参数binary
        fs.readFile(file,'binary',function (error,data) {
            if(error)
                throw error;
            //图片 head是images/jpeg
            res.writeHead(200,{'Content-Type':'image/jpeg'});
            //图片前面不能输出文本，否则不能显示图片
            // res.write('text');
            res.write(data,'binary');
            res.end();
        })
    }
}